[TDR Generic表] [MySQL协议兼容接口] 更新数据
1. 接口说明
更新指定表格中已经存在的记录。
2. 准备工作
参见准备工作文档,完成mysql_table
表的创建,并使用MySQL Client成功连接到TcaplusDB。
3. 更新数据时WHERE子句的语法规则
更新语句的WHERE
子句由两部分组成:(1)必备部分:index或primarykey
;(2)可选部分:过滤条件。
对于index
或primarykey
中的字段,只能进行等值查询,且组成index
或primarykey
的各个字段之间只能用AND
运算符连接;
过滤条件支持NOT
、=
、>
、<
、!=
、>=
、<=
运算符,且多个过滤条件之间可以用AND
或OR
连接,支持对key字段、value字段、记录版本号字段和记录TTL字段进行过滤。
- 使用
primarykey
更新mysql_table
表中的数据时,WHERE
子句形式如下:WHERE k1=1 AND k2=2 AND k3='one';
- 使用
primarykey
+过滤条件更新mysql_table
表中的数据时,WHERE
子句形式如下(如果过滤条件中包含OR
运算符,则必须对过滤条件加括号):WHERE k1=1 AND k2=2 AND k3='one' AND (过滤条件);
- 使用
index
更新mysql_table
表中的数据时,WHERE
子句形式如下:
注意:当时用WHERE k1=1 AND k2=2;
index
更新数据时,可能会一次性更新多条记录。
4. 示例SQL
使用
primarykey
更新mysql_table
表中的一条记录时,SQL语句有以下2种形式:UPDATE mysql_table SET v1=v1+1, v2=2 WHERE k1=1 AND k2=2 AND k3='one'; UPDATE mysql_table SET v1=v1-1, v2=2 WHERE k1=1 AND k2=2 AND k3='one' AND (v1>=4 OR v2<=4);
上面第2条SQL语句括号中的内容即为过滤条件。
使用
primarykey
更新mysql_table
表中的多条记录时,SQL语句形式如下:UPDATE mysql_table SET v1=v1-1, v2=v2+2 WHERE k1=1 AND k2=2 AND k3='one' OR k1=1 AND k2=2 AND k3='two' AND (v1>=4 OR v2<=4);
上面SQL语句括号中的内容即为过滤条件。
使用
index
更新mysql_table
表中的多条记录时,SQL语句形式如下:UPDATE mysql_table SET v1=v1+1, v2=2 WHERE k1=1 AND k2=2;
使用
index
更新记录时暂不支持过滤条件。
5. 常见问题
详见错误码含义和处理方法。
6. 其它参考文档
[TDR Generic表][C++ SDK]更新单条数据接口说明
[TDR Generic表][Java SDK]更新单条数据接口说明
[TDR Generic表][Go SDK]更新单条数据接口说明
[TDR Generic表][C++ SDK]记录部分字段自增接口说明